package com.t.bricks.bussiness.db.dao.filecabinet;

import java.util.Map;

import com.t.bricks.bussiness.db.entity.filecabinet.FileCabinet;
import com.t.bricks.model.MsgEmity;
import com.t.bricks.model.Page;

public interface FileCabinetDao {
	
	/**
	 * 添加
	 * @Param fileCabinet
	 * @return
	 */
	MsgEmity add(FileCabinet fileCabinet);

	/**
	 * 删除
	 * @Param sId
	 * @Param iVersion
	 * @return
	 */
	MsgEmity del(String sId, Integer iVersion);
	
	/**
	 * 修改
	 * @param fileCabinet
	 * @return
	 */
	MsgEmity edit(FileCabinet fileCabinet);
	
	/**
	 * 根据编号查询数据
	 * @Param sId
	 * @return
	 */
	MsgEmity findById(String sId);

	/**
	 * 根据关键值取对象
	 * @Param fileCabinetData 存放查询条件的fileCabinet对象
	 * @return
	 */
	MsgEmity findByKey(FileCabinet fileCabinetData);

	/**
	 * 根据关键值查数量
	 * @Param fileCabinetData 存放查询条件的fileCabinet对象
	 * @return
	 */
	int findCountByKey(FileCabinet fileCabinetData);

	/**
	 * 检查待修改内容是否存在重复数据
	 * @Param fileCabinetData
	 * @return
	 */
	boolean checkRepeatByEdit(FileCabinet fileCabinetData);

	/**
	 * 检查待新增内容是否存在重复数据
	 * @Param fileCabinetData
	 * @return
	 */
	boolean checkRepeatByAdd(FileCabinet fileCabinetData);

	/**
	 * 查询分页
	 * @Param map
	 * @Param orders
	 * @Param page
	 * @return
	 */
	MsgEmity findByPage(Map<String, Object> map, String orders, Page page);
	
	/**
	 * 判断是否存在相同记录
	 * @param sName
	 * @param sProgram
	 * @param sFileMd5
	 * @return
	 */
	MsgEmity findSameDataCount(String sName, String sProgram, String sFileMd5);
	
	/**
	 * 根据项目名,文件名和文件key查询数据
	 * @param sProgram 
	 * @param fileName
	 * @param sFileMd5
	 * @return
	 */
	MsgEmity findByNameAndKey(String sProgram, String fileName, String sFileMd5);
	
	/**
	 * 查找文件存储路径路径
	 * @param sId
	 * @return
	 */
	MsgEmity findPathById(String sId);
	
}
